package com.itheima.a01mystream;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

public class StreamDemo5 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<String> list = new ArrayList<>();
        //添加元素
        Collections.addAll(list, "张三-男-18", "李四-女-14", "王五-男-55", "赵六-女-56", "张无忌-男-14");

        //利用Stream流添加到Map集合中
//        List<String> list1 = list.stream().filter(s -> "男".equals(s.split("-")[1]))
//                .collect(Collectors.toList());
//
//        System.out.println(list1);
//
//        Set<String> list2 = list.stream().filter(s -> "男".equals(s.split("-")[1]))
//                .collect(Collectors.toSet());
//        System.out.println(list2);

        //使用map集合
        //使用匿名内部类
        Map<String, Integer> Map1 = list.stream().filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toMap(new Function<String, String>() {
                                              @Override
                                              public String apply(String s) {
                                                  return s.split("-")[0];
                                              }
                                          }, new Function<String, Integer>() {
                                              @Override
                                              public Integer apply(String s) {
                                                  return Integer.parseInt(s.split("-")[2]);
                                              }
                                          }
                ));
        //System.out.println(Map1);
        //注意:双列集合不可以有重复的键值

        //使用Lambda表达式
        Map<String, Integer> Map2 = list.stream().filter(s -> "男".equals(s.split("-")[1]))
                .collect(Collectors.toMap(
                        s -> s.split("-")[0],
                        s -> Integer.parseInt(s.split("-")[2])
                ));
        System.out.println(Map2);
    }
}
